DeepMerge: Learning to Merge Programs
نویسندگان
چکیده
In collaborative software development, program merging is the mechanism to integrate changes from multiple programmers. Merge algorithms in modern version control systems report a conflict when interfere textually. conflicts require manual intervention and frequently stall continuous integration pipelines. Prior work found that, although costly, large majority of resolutions involve re-arranging text without writing any new code. Inspired by this observation we propose the xmlns:xlink="http://www.w3.org/1999/xlink">first data-driven approach resolve merge with machine learning model. We realize our approach tool DeepMerge that uses novel combination (i) an edit-aware embedding inputs (ii) variation pointer networks, construct input segments. also algorithm localize resolved file employ it curate ground-truth dataset comprising 8,719 non-trivial JavaScript programs. Our evaluation shows on held out test set, can predict correct for 37% merges, compared only 4% state-of-the-art semistructured technique. Furthermore, subset merges upto 3 lines (comprising 24% total dataset), 78% accuracy.
منابع مشابه
Learning to Merge Word Senses
It has been widely observed that different NLP applications require different sense granularities in order to best exploit word sense distinctions, and that for many applications WordNet senses are too fine-grained. In contrast to previously proposed automatic methods for sense clustering, we formulate sense merging as a supervised learning problem, exploiting human-labeled sense clusterings as...
متن کاملMerge or Not? Learning to Group Faces via Imitation Learning
Given a large number of unlabeled face images, face grouping aims at clustering the images into individual identities present in the data. This task remains a challenging problem despite the remarkable capability of deep learning approaches in learning face representation. In particular, grouping results can still be egregious given profile faces and a large number of uninteresting faces and no...
متن کاملRefactorings that Split and Merge Programs
Program slicing is a well understood concept in the imperative paradigm, but so far there has been little work on program slicing in the context of functional languages. This paper describes a program slicing technique for Haskell that takes tuple-returning functions apart (called splitting); the converse of this is also described (called merging). The slicer is implemented as a transformation ...
متن کاملLearning to Merge Search Results for Efficient Distributed Information Retrieval
Merging search results from different servers is a major problem in Distributed Information Retrieval. We used Regression-SVM and Ranking-SVM which would learn a function that merges results based on information that is readily available: i.e. the ranks, titles, summaries and URLs contained in the results pages. By not downloading additional information, such as the full document, we decrease b...
متن کاملLearning to Merge: A New Tool for Interactive Mapping
The task of turning raw imagery into semantically meaningful maps and overlays is a key area of remote sensing activity. Image analysts, in applications ranging from environmental monitoring to intelligence, use imagery to generate and update maps of terrain, vegetation, road networks, buildings and other relevant features. Often these tasks can be cast as a pixel labeling problem, and several ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: IEEE Transactions on Software Engineering
سال: 2023
ISSN: ['0098-5589', '1939-3520', '2326-3881']
DOI: https://doi.org/10.1109/tse.2022.3183955